function    A304()
format long;

% 时间序列是通过观测得到的依时间次序排列而又相互关联的数据序列，主要包括均值、均方值、方差、自相关和自协方差等函数。
% 时间序列分析利用随机数学方法研究随时间变化，且前后相互关联的动态随机数据。




% 读取 ChinaBank.csv 文件
filePath2 = 'A3_data_single.xlsx';  % 文件路径
filePath = 'A3_data_double.xlsx';
% 使用 readtable 读取数据表（推荐）
data = readtable(filePath);           % 自动读取表头
data2 = readtable(filePath2);           % 自动读取表头
% 提取第一列数据
z = data{:, 150};  % 使用大括号提取数据内容，而不是表对象
z2 = data2{:, 150};

subplot(3, 3, 1)
plot(1:length(z), z, 'b-',1:length(z2),z2,'r-');

title('单双排钢筋信号比较');
xlabel('采样数量'); ylabel('幅度'); 
legend('单排钢筋信号','双排钢筋信号')


subplot(3, 3, 2)  
hold on  
% 计算单排钢筋信号的自相关
[acf1_dz, lags1_dz] = autocorr(z, 'NumLags', length(z)-1);
plot(lags1_dz, acf1_dz, 'b', 'LineWidth', 1)  

% 计算双钢筋型号的自相关
[acf2_sz, lags2_sz] = autocorr(z2, 'NumLags', length(z2)-1);
plot(lags2_sz, acf2_sz, 'r', 'LineWidth', 1) 

hold off  
xlabel('滞后'); 
ylabel('自相关系数'); 
title('单双排钢筋信号的自相关对比');
legend({'单排钢筋信号', '双排钢筋信号'}) 



subplot(3, 3, 3)  
hold on  
% 计算单排钢筋信号的偏自相关
[acf1_dp, lags1_dp] = parcorr(z, 'NumLags', length(z)-1);
plot(lags1_dp, acf1_dp, 'b', 'LineWidth', 1)  

% 计算双排钢筋信号的偏自相关
[acf2_sp, lags2_sp] = parcorr(z2, 'NumLags', length(z2)-1);
plot(lags2_sp, acf2_sp, 'r', 'LineWidth', 1) 

hold off  
xlabel('滞后'); 
ylabel('偏自相关系数'); 
title('单双排钢筋信号的偏自相关对比');
xlim([1200 1400]); 
legend({'单排钢筋信号', '双排钢筋信号'}) 



% 计算单排钢筋信号的一阶差分
d1 = diff(z);                          
d2 = diff(z2);
subplot(3, 3, 4)
plot(1:length(d1), d1, 'b-', 1:length(d2), d2, 'r-');
legend('单排钢筋信号', '双排钢筋信号')
xlabel('时间'); ylabel('信号'); title('单双排钢筋信号一阶差分对比');

subplot(3, 3, 5)  
hold on  

% 计算单排钢筋一阶差分信号的自相关
[acf1_fdz, lags1_fdz] = autocorr(d1, 'NumLags', length(d1)-1);
plot(lags1_fdz, acf1_fdz, 'b', 'LineWidth', 1)  

% 计算双排钢筋一阶差分信号的自相关
[acf2_fsz, lags2_fsz] = autocorr(d2, 'NumLags', length(d2)-1);
plot(lags2_fsz, acf2_fsz, 'r', 'LineWidth', 1) 

hold off  
xlabel('滞后'); 
ylabel('自相关系数'); 
title('单双排钢筋信号的自相关对比');
legend({'单排钢筋信号', '双排钢筋信号'}) 



subplot(3, 3, 6)  
hold on  
% 计算单排钢筋信号一阶差分后的偏自相关
[acf1_f, lags1_f] = parcorr(d1, 'NumLags', length(d1)-1);
plot(lags1_f, acf1_f, 'b', 'LineWidth', 1)  

% 计算双排钢筋信号一阶差分后的偏自相关
[acf2_f, lags2_f] = parcorr(d2, 'NumLags', length(d2)-1);
plot(lags2_f, acf2_f, 'r', 'LineWidth', 1) 

hold off  
xlabel('滞后'); 
ylabel('偏自相关系数'); 
title('单双排钢筋信号的偏自相关对比');
xlim([1200 1400]); 
legend({'单排钢筋信号', '双排钢筋信号'}) 



%自相关差值比较
subplot(3, 3, 7)  
cha1 = acf1_dz-acf2_sz
cha2 = acf1_fdz-acf2_fsz
plot(1:length(cha1),cha1,'b-',1:length(cha2),cha2,'r-')
legend('单双排钢筋信号自相关差值 ','单双排钢筋一阶差分信号自相关差值 ');
title('自相关差值比较')

%互相关对比
subplot(3, 3, 8)  
hold on  
% 计算单排钢筋信号的互相关
[acf1, lags1] = xcorr(z,d1);
plot(lags1, acf1, 'b', 'LineWidth', 1) 

% 计算双排钢筋信号的互相关
[acf2, lags2] = xcorr(z2,d2);
plot(lags2, acf2, 'r', 'LineWidth', 1) 

hold off  
xlabel('滞后'); 
ylabel('互相关系数'); 
title('互相关对比');
legend({'单排钢筋信号与单排钢筋一阶差分信号互相关', '双排钢筋信号与双排钢筋一阶差分信号互相关'}) 

%互相关差值比较
subplot(3, 3, 9)  
cha3 = acf1-acf2
plot(1:length(cha3),cha3,'b-')
legend('单双排钢筋信号互相关差值 ');
%xlim([900 1400]); 
title('单双排钢筋信号互相关差值')


